One conventional method for performing packet processing and/or virtualization is done in a peripheral device that is external to a processor and/or a chipset, such as in a network interface card. For example, the network interface card may include an offload engine to perform Transmission Control Protocol/Internet Protocol (TCP/IP) processing (e.g., TCP/IP Offload Engine (TOE)) on packets received from and transmitted to a network. A TOE may be a network adapter, which performs some or all of the TCP/IP processing on the network interface card (e.g., Ethernet adapter) instead of on the central processing unit (CPU). Offloading the processing from the CPU to the card allows the CPU to keep up with the high-speed data transmission. Processing for the entire TCP/IP protocol stack may be performed on the TOE or can be shared with the CPU.
TCP/IP is a communications protocol developed under contract from the U.S. Department of Defense to internetwork dissimilar systems and is the protocol of the Internet and the global standard for communications. TCP/IP is a routable protocol, and the IP “network” layer in TCP/IP provides this capability. The header prefixed to an IP packet may contain not only source and destination addresses of the hosts, but source and destination addresses of the networks in which they reside. Data transmitted using TCP/IP can be sent to multiple networks within an organization or around the globe via the Internet, the world's largest TCP/IP network.